A computer network is a geographically distributed collection of interconnected communication links for transporting data between nodes, such as computers. Many types of computer networks are available, with the types ranging from local area networks (LANs) to wide area networks (WANs). The nodes typically communicate by exchanging discrete frames or packets of data according to pre-defined protocols. In this context, a protocol consists of a set of rules defining how the nodes interact with each other.
Computer networks may be further interconnected by an intermediate node, called a router, to extend the effective “size” of each network. Since management of a large system of interconnected computer networks can prove burdensome, smaller groups of computer networks may be maintained as autonomous systems or routing domains. The term routing domain is used by the International Organization for Standardization (ISO), whereas the term autonomous system is used by the Internet community and, in particular, the Internet protocol suite or IP.
The networks within an autonomous system or routing domain are typically coupled together by conventional intradomain routers. These intradomain routers manage communication among local networks within their domains and communicate with each other using an intradomain routing protocol (ISO) or an Interior Gateway Protocol, IGP (IP). Examples of these protocols include the Intermediate System-to-Intermediate System, ISIS (ISO) and the Open Shortest Path First, OSPF (IP) routing protocols. The ISIS and OSPF protocols are based on link-state technology and, therefore, are hereinafter referred to as link state routing protocols.
In a link state routing protocol, each router maintains a database describing the topology of the routing domain or autonomous system (AS). This database is referred to as a link state database (LSDB) and each participating router has an identical LSDB. Each individual piece of the LSDB is a particular router's local state, e.g., the router's usable interfaces and reachable neighbors. As used herein, neighboring routers (or “neighbors”) are two routers that have interfaces to a common network, wherein an interface is a connection between a router and one of its attached networks. Each router distributes its local state throughout the domain in accordance with an initial LSBD synchronization process and a conventional, asynchronous flooding algorithm.
The flooding algorithm is one of the most important parts of any link state routing protocol. The algorithm ensures that all routers within a link state domain converge on the same topological information within a finite period of time. To ensure reliability, typical implementations of the flooding algorithm send new information via all interfaces other than the one over which the new piece of information was received. Such redundancy is introduced to guarantee that flooding is performed reliably, but implies considerable overhead of utilized bandwidth and processor consumption (time) if neighboring routers are connected with more than one link.
In order to guarantee convergence of a link state routing protocol, it should be ensured that link state protocol data units (PDUs) that originate after an initial LSDB synchronization between neighbors is completed are delivered to all routers within the flooding scope limits. These limits may comprise an area or the entire AS, depending on the protocol and the type of link state PDU. An area is a collection or group of contiguous networks and nodes (hosts), together with routers having interfaces to any of the included networks. Each area runs a separate copy of the link state routing algorithm and, thus, has its own LSDB. In the case of OSPF, the PDU is a link state advertisement (LSA), whereas for ISIS, the PDU is a link state packet (LSP). The LSA/LSP is a unit of data describing the local state of a router or network; for a router, as noted, the state includes the state of the router's interfaces and adjacencies. An adjacency is a relationship formed between selected neighboring routers for the purpose of exchanging routing information and abstracting the network topology. One or more router adjacencies may be established over an interface. The collected PDUs of all routers and networks form the LSDB for the particular link state routing protocol.
Link state routing protocols typically use a per-interface paradigm for information flooding. Specifically, the model used by link state protocols to guarantee convergence implies that (i) PDUs are transmitted reliably between any pair of routers, and (ii) whenever a new PDU is received, it is sent over all interfaces other than the one over which it was received. An exception involves the case when the router is the Designated Router in OSPF, where the LSA is sent back over the same interfaces. To satisfy the first requirement, link state routing protocols keep retransmitting new PDUs to the neighbors that have not acknowledged reception (the only exception is flooding performed on broadcast links in ISIS). As an example, in OSPF, a link state retransmission list is maintained for every neighbor data structure on every interface. When an LSA is sent through an interface, it is placed on the retransmission list of every neighbor associated with this interface and is removed from it only after the neighbor has acknowledged reception of the LSA.
Similarly, ISIS implementations typically use Send Routing Message (SRMflag) and Send Sequence Number (SSNflag) flags that are interface-specific, as well as periodical Complete Sequence Numbers Packet (CSNP) announcements on broadcast links to ensure reliability of flooding. For each LSP, and for each interface (circuit) over which routing messages are exchanged, there is (i) a SRMflag that, if set, indicates that the LSP should be transmitted on that circuit and (ii) a SSNflag that, if set, indicates that information about the LSP should be included in a Partial Sequence Number PDU (PSNP) transmitted on that circuit.
Although, the per-interface model works well, this approach implies high overhead in the case of highly redundant networks where neighboring routers are connected by more than one link. For example, assume two neighboring routers (R1 and R2) are connected via N links. When R1 receives new topological or routing information (in the form of PDUs) from a router other than R2, it installs the new PDU in its LSDB and performs the basic per-interface flooding algorithm, sending the new PDU over all interfaces except the one over which the new PDU was received. Therefore, R1 sends N copies of the new PDU to R2. R2 installs the first copy of the PDU it receives into its LSDB; however, link bandwidth and processor cycles are spent transmitting and processing all N copies of the PDU.
Furthermore, after installing the first copy of the PDU in its LSDB, R2 “floods back” to R1 N−1 copies of the PDU, again consuming substantial bandwidth and processor time. If R1 receives an acknowledgement from R2 on some links, but not from others, it keeps retransmitting unacknowledged PDUs even though they are already installed in R2's LDSB. The number of PDUs that are flooded in accordance with a link state routing protocol is quite large in conventional networks. Accordingly, the behavior of the per-interface paradigm inefficiently consumes (wastes) overhead in terms of bandwidth and processor resources. The present invention is directed to a technique that reduces the bandwidth and processor overhead consumed by a conventional flooding algorithm.